﻿using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web.Script.Serialization;
using System.Web;
using System.Net;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using System.IO;
using System.Linq;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using WebApplication1.MSG;

namespace WebApplication1
{
    public partial class RedirectRP : System.Web.UI.Page
    {string Name = "未知用户9";
        string phone = "00000000007";
        string tokenValue = "";
        string EQID = "000";
        protected void Page_Load(object sender, EventArgs e)
        {

            EQID = Request["i"].Trim().ToString();

             try
                    {
                        //1.微信主页判断是否存在Cookie信息，如果存在则不需要再次验证
                        //2.如果不存在，则跳转到微信OAuth统一认证页面认证，之后到此页面获取用户信息存入Cookie返回主页
                        //3.获取Code,此code只能使用一次。
                        string code = Request["code"];
                       
                        //4.根据企业ID:XX,Secret:XXX,获取token
                        string accessTokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken";
                        string accessTokenResult = HttpGet(accessTokenUrl, "corpid=wx8579b2dae40753d2&corpsecret=JjVqfS47AEc9Z9UHhDvksIGZ_YPgW6Wjo80jGOTxKX8m8yn4VoHDaxRXJI43dIa5");
                        if (accessTokenResult.Length < 200)
                            Response.Redirect("http://www.cmuam.site/Add_RP3.aspx?i=" + EQID, false);
                 
                 JavaScriptSerializer js = new JavaScriptSerializer();
                        token mytoken = js.Deserialize<token>(accessTokenResult);
                        tokenValue = mytoken.access_token;
                       


                        //5.获取UserInfo,包含userId
                        string userinfoUrl = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo";
                        string userinfojson = HttpGet(userinfoUrl, "access_token=" + tokenValue + "&code=" + code);
                        userinfo userinfo1 = js.Deserialize<userinfo>(userinfojson);
                        string UserId = userinfo1.UserId;


                        //6.根据userId获取通讯录中用户的详细信息
                        string userinfodetailURL = "https://qyapi.weixin.qq.com/cgi-bin/user/get";
                        string userinfodetailResult = HttpGet(userinfodetailURL, "access_token=" + tokenValue + "&userid=" + UserId);
               
                        // JObject jObject = (JObject)JsonConvert.DeserializeObject(userinfodetailResult);
                        // JObject ja = (JObject)JsonConvert.DeserializeObject(jObject["extattr"].ToString());
                        // JObject ja2 = (JObject)JsonConvert.DeserializeObject(jObject["mobile"].ToString());
                        // JArray jObject1 = (JArray)JsonConvert.DeserializeObject(ja["attrs"].ToString());
                        //txtReturn2.Text = ja[0]["MainOrganization"].ToString();

                        //测试结果
                        //Response.Write("1:token:" + accessTokenResult + "<br/>2:tokenValue:" + tokenValue + "<br/>3:code:" + code + "<br/>4:userinfojson:" + userinfojson + "<br/>5.UserId:" + UserId + "<br/>6.userinfodetailResult:" + userinfodetailResult + "<br/>7:数组：" + jObject1[0]["value"].ToString());

                        //7.将Guid存入cookie


                        //string userguid = jObject1[0]["value"].ToString();
                        // Response.Cookies["UserGuid"].Value = userguid;
                        // Response.Cookies["UserGuid"].Expires = DateTime.Now.AddDays(1);



                        string[] sArray = userinfodetailResult.Split(new string[] { "mobile", "gender" }, StringSplitOptions.RemoveEmptyEntries);
                        string[] sArray2 = userinfodetailResult.Split(new string[] { "name", "department" }, StringSplitOptions.RemoveEmptyEntries);
                        

                        string un = "";
                        un = sArray2[1];

                        un = un.Replace("\"", "");
                        un = un.Replace(":", "");
                        un = un.Replace(",", "");

                        string str = sArray[1];
                        str = str.Replace("\"", "");
                        str = str.Replace(":", "");
                        str = str.Replace(",", "");
                        //Label1.Text = str;
                        UserInfo us = new UserInfo();
                        us.Init(Request.Cookies["UserPhone"].Value.ToString());
                        Response.Redirect("http://cmu.lichuanjia.cn/Add_RP_No_Code.aspx?i=" + EQID + "&userid=" + un + "&userphone=" + str + "&Cname=" + us.ChineseName + "&tflag=" + "0000", false);


                       

                    }
                    catch (Exception ex)
                    {
                        //TODO 处理异常

                    }
            
                
            




        }
        public string HttpGet(string Url, string postDataStr)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            return retString;
        }
        public class userinfo
        {
            public string UserId { get; set; }
            public string DeviceId { get; set; }
        }

        public class token
        {

            public string access_token { get; set; }
            public int expires_in { get; set; }

        }
    }

}